package com.renyisima.wujiansima.demo.homework;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;

/*
定义一个标准的JavaBean，名叫Person，包含属性name、age。

使用反射的方式创建一个实例、调用构造函数初始化name、age，使用反射方式调用setName方法对名称进行设置，

不使用setAge方法直接使用反射方式对age赋值。

 */
public class HomeWork {
    public static void main(String[] args) throws Exception {
//        获取字节码对象
        Class clazz = Class.forName("com.renyisima.wujiansima.demo.homework.Person");
//        创建对象
        Constructor cs = clazz.getConstructor();
        Object o = cs.newInstance();
//        获取成员变量
        Field name = clazz.getDeclaredField("name");
        name.setAccessible(true);
        Field age = clazz.getDeclaredField("age");
        age.setAccessible(true);
        name.set(o,"伍鉴");
        age.set(o,23);
        System.out.println(o);

    }
}
